
#ifndef Lines_StatePause_h
#define Lines_StatePause_h

#include "Singleton.h"
#include "GameState.h"
#include "RenderableEntity.h"
#include "FadeEffect.h"
#include "MoveEffect.h"
#include "ScaleEffect.h"
#include "TimeLineEffect.h"
#include "TextEntity.h"

class StatePause : public GameState, public Singleton<StatePause>
{
private:
    enum ePauseStates { Enter, Idle, Exit, ToMenu };
    
    ePauseStates m_eState;
    
    RenderableEntity* m_bg;

    RenderableEntity* m_oRibbon;
    TextEntity* m_tPause;
    
    TextEntity* m_oMusic;
    RenderableEntity* m_oMusicBG;
    RenderableEntity* m_oMusicMark;
    
    TextEntity* m_oSfx;
    RenderableEntity* m_oSfxBG;
    RenderableEntity* m_oSfxMark;
    
    TextEntity* m_oAccelerometer;
    TextEntity* m_oAccelerometerDisabled;
    RenderableEntity* m_oAccelerometerBG;
    RenderableEntity* m_oAccelerometerMark;
    
    RenderableEntity* m_oLeftBg;
    RenderableEntity* m_oRightBg;
    
    TextEntity* m_tMainMenu;
    TextEntity* m_tContinue;
    
	TimeLineEffect* m_ePauseEnter;
	TimeLineEffect* m_ePauseExit;
        
public:
	StatePause();
	~StatePause();
	
	void loadContent();
	void unloadContent();
	void enter();
	void exit();
	void update(float dt);
	void render();
};

#endif
